#ifndef RENDER_STAGE_H
#define RENDER_STAGE_H

#include "Include.h"
#include "Pipeline.h"
#include "Model.h"
#include "Texture2D.h"

namespace devii
{

class RenderStage
{
public:
	RenderStage(Pipeline* const pipeline);
	~RenderStage();
	void init(const unsigned int width, const unsigned int height);
	void clear();
	void render(const matrix& view_proj);
private:
	D3D11_VIEWPORT view_port;
	Pipeline* pipeline;

	// Renderable data
	std::vector<Model* > models;
	std::vector<Texture*> textures;
	std::vector<Texture2D*> box_models;

	std::vector<RenderTarget*> render_targets;
	D3D11_VIEWPORT vp;
};

}


#endif